package com.leetcode.slideWindow;

public class MinSubArrayLen {
    public static void main(String[] args) {
        int[] nums = {2, 3, 1, 2, 4, 3};
        int target = 7;
        MinSubArrayLen minSubArrayLen = new MinSubArrayLen();
        System.out.println(minSubArrayLen.minSubArrayLen(target, nums));
    }

    public int minSubArrayLen(int target, int[] nums) {
        int res = Integer.MAX_VALUE;
        int lowPtr = 0;
        int quickPtr = 0;
        int sum = 0;
        int size = nums.length;
        while (quickPtr < size) {
            sum += nums[quickPtr];
            while (sum >= target) {
                res = Math.min(res, quickPtr - lowPtr + 1);
                sum -= nums[lowPtr];
                lowPtr--;
            }
            quickPtr++;
        }
        return res == Integer.MAX_VALUE ? 0 : res;
    }
}
